package com.csproj.basic.service.dto;


import java.io.Serializable;
import java.time.ZonedDateTime;
import java.util.Objects;

/**
 * A DTO for the Container entity.
 */
public class ContainerDTO implements Serializable {


    private String id;

    private String containerNo;

    private String containerSpecifications;

    private String containerColor;

    private String containerCompanyId;

    private String containerCompanyName;

    private String containerSource;

    private Boolean enableFlag;

    private Boolean dptFlag;

    private Boolean deletedFlag;

    private String deleterUserId;

    private ZonedDateTime deletionTime;

    private ZonedDateTime lastModificationTime;

    private String lastModifierUserId;

    private ZonedDateTime creationTime;

    private String creatorUserId;

    //extend
    private String hasLogistics;

    private String hasProductInfo;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getContainerNo() {
        return containerNo;
    }

    public void setContainerNo(String containerNo) {
        this.containerNo = containerNo;
    }

    public String getContainerSpecifications() {
        return containerSpecifications;
    }

    public void setContainerSpecifications(String containerSpecifications) {
        this.containerSpecifications = containerSpecifications;
    }

    public String getContainerColor() {
        return containerColor;
    }

    public void setContainerColor(String containerColor) {
        this.containerColor = containerColor;
    }

    public String getContainerCompanyId() {
        return containerCompanyId;
    }

    public void setContainerCompanyId(String containerCompanyId) {
        this.containerCompanyId = containerCompanyId;
    }

    public String getContainerCompanyName(){ return containerCompanyName; }

    public  void  setContainerCompanyName(String containerCompanyName){ this.containerCompanyName = containerCompanyName;}

    public String getContainerSource() {
        return containerSource;
    }

    public void setContainerSource(String containerSource) {
        this.containerSource = containerSource;
    }

    public Boolean isEnableFlag() {
        return enableFlag;
    }

    public void setEnableFlag(Boolean enableFlag) {
        this.enableFlag = enableFlag;
    }

    public Boolean getDptFlag() {
        return dptFlag;
    }

    public void setDptFlag(Boolean dptFlag) {
        this.dptFlag = dptFlag;
    }

    public Boolean isDeletedFlag() {
        return deletedFlag;
    }

    public void setDeletedFlag(Boolean deletedFlag) {
        this.deletedFlag = deletedFlag;
    }

    public String getDeleterUserId() {
        return deleterUserId;
    }

    public void setDeleterUserId(String deleterUserId) {
        this.deleterUserId = deleterUserId;
    }

    public ZonedDateTime getDeletionTime() {
        return deletionTime;
    }

    public void setDeletionTime(ZonedDateTime deletionTime) {
        this.deletionTime = deletionTime;
    }

    public ZonedDateTime getLastModificationTime() {
        return lastModificationTime;
    }

    public void setLastModificationTime(ZonedDateTime lastModificationTime) {
        this.lastModificationTime = lastModificationTime;
    }

    public String getLastModifierUserId() {
        return lastModifierUserId;
    }

    public void setLastModifierUserId(String lastModifierUserId) {
        this.lastModifierUserId = lastModifierUserId;
    }


    public String getHasLogistics() {
        return hasLogistics;
    }

    public void setHasLogistics(String hasLogistics) {
        this.hasLogistics = hasLogistics;
    }

    public String getHasProductInfo() {
        return hasProductInfo;
    }

    public void setHasProductInfo(String hasProductInfo) {
        this.hasProductInfo = hasProductInfo;
    }

    public ZonedDateTime getCreationTime() {
        return creationTime;
    }

    public void setCreationTime(ZonedDateTime creationTime) {
        this.creationTime = creationTime;
    }

    public String getCreatorUserId() {
        return creatorUserId;
    }

    public void setCreatorUserId(String creatorUserId) {
        this.creatorUserId = creatorUserId;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        ContainerDTO containerDTO = (ContainerDTO) o;
        if(containerDTO.getId() == null || getId() == null) {
            return false;
        }
        return Objects.equals(getId(), containerDTO.getId());
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(getId());
    }

    @Override
    public String toString() {
        return "ContainerDTO{" +
            "id=" + getId() +
            ", containerNo='" + getContainerNo() + "'" +
            ", containerSpecifications='" + getContainerSpecifications() + "'" +
            ", containerColor='" + getContainerColor() + "'" +
            ", containerCompanyId='" + getContainerCompanyId() + "'" +
            ", containerCompanyName='" + getContainerCompanyName() + "'" +
            ", containerSource='" + getContainerSource() + "'" +
            ", enableFlag='" + isEnableFlag() + "'" +
            ", deletedFlag='" + isDeletedFlag() + "'" +
            ", deleterUserId='" + getDeleterUserId() + "'" +
            ", deletionTime='" + getDeletionTime() + "'" +
            ", lastModificationTime='" + getLastModificationTime() + "'" +
            ", lastModifierUserId='" + getLastModifierUserId() + "'" +
            ", creationTime='" + getCreationTime() + "'" +
            ", creatorUserId='" + getCreatorUserId() + "'" +
            "}";
    }
}
